@
3年前 提问
1个回答

什么是 RARP 协议

帅末
3年前

RARP就是一种反向地址转换协议,就是将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛用于获取无盘工作站的IP地址。

要想知道什么是RARP那就必须要知道什么是ARP。

ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,它用于映射计算机的物理地址与网络的IP地址。ARP所要做的工作就是在主机发送帧前,根据目标IP地址获得MAC地址,以保证通信过程的顺利。

这个只要是懂点网络安全的人ARP协议多少也都知道吧,RARP与ARP工作方式相反。

RARP发出要反向解释的物理地址并希望返回其IP地址,应答包括能够提供所需信息的RARP服务器发出的IP地址。RARP获取IP地址前提是要知道自己IP地址的机器向另一台机器上的服务器发送请求,并等待服务器发出响应,开始的时候并不知道服务器的物理地址,所以一般通过广播来寻找。一旦通过广播对地址的请求,就必须唯一标识自己的硬件标识,这里所说的硬件标识最简单的例子就是CPU序列号,这个标识能让可执行程序容易获得。源主机收到从RARP服务器的响应消息后,就可以利用得到的IP地址进行通信。说白了这个RARP就是一种反向地址转换协议,就是将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛用于获取无盘工作站的IP地址。

RARP工作原理:

1)主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址。

2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址。

3)如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用。

4)如果不存在,RARP服务器对此不做任何的响应。

5)源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

5、编写arp脚本抓取对应主机mac地址:

#!/bin/bash 
index=1
num=0
while[ $index -le 254 ]
do
        if[ $num -lt 20 ];then
          sleep 1
          num=0
          continue
        fi
        ping -cl "192.168.0.$index"&  //加&表示在后台运行
        let index++
        let num++
done